Rateless codes, otherwise known as fountain codes, can be used to transmit messages in a rateless way. Rateless transmissions do not need to exhibit a fixed code rate, and even if they do the rate may not be known to the receiver. Rather, rateless codes may include any number of bits or symbols per transmission. During rateless transmission, no acknowledgement from a receiver may be needed, since message fragments are sent in a way that provides a high probability that the receiver can reassemble the message when it has a sufficiently large subset of the fragments, even if some losses occur during transmission. The receiver simply receives the fragments and, when it has enough fragments to reconstruct the message, it does so.
Despite the non-fixed manner of rateless transmissions, certain header information must be known by both a sender and receiver in order to accurately reconstruct a message sent using a rateless code. Typically, this header information is transferred using conventional, synchronous communications. This document describes methods and systems that may address some or all the issues described above.